1. Field of the Invention
This invention relates to operation of automated data processing equipment and more specifically to automated data processing equipment that utilizes multiple cooperating processors.
2. Description of Related Art
Automated data processing applications often execute on processing systems that have multiple processors. These multiple processors are frequently organized as groups and all of the members or nodes within the group operate in a cooperative and parallel manner. An example of a tightly integrated group of processors is a multiple processor computing cluster. One or more of these processors within a group can be referred to as a “node,” where a node is defined as one or more processors that are executing a single operating system image. A node that is part of a group is referred to herein as a member of the group or a member node. The various members within a group are connected by a data communications system that supports data communications among all of the group members.
Communications among the members of a group is typically performed by a standard communications mechanism. These standard communications mechanisms are typically reliable and ordered, which means that the group communications system ensures that all members of a group receive all of the messages in the exact same order as all of the other members of the group.
Members of a computing system group, such as computing nodes within a cluster or other type of computing system group, are often assigned a series of computing tasks to perform. A unit of work that is distributed to all members of a computing system group is referred to as a “Protocol.” Group protocols are generally communicated to each member using the reliable and ordered group communications system. This results in all members of the group working on the protocol together, and exiting the protocol together.
More than one group can be connected together to allow these multiple groups to handle more complex computing tasks. The processing performed by each of these groups can have a dependency on another group. For example, a group performing an application task might have a dependency on another group that is performing data storage tasks. The data storage task must produce data that is required by the application task before the application task is able to execute.
These group messaging techniques assume that all nodes require the same information as all other nodes and do not directly support dependencies among or between groups. This has resulted in the development of mechanisms outside of the group structure to handle subtask processing within and among groups. This has added complexity and additional effort in the development of inter-dependent processing protocols.
Therefore a need exists to overcome the problems with the prior art as discussed above, and particularly for a way to more efficiently support inter-dependent tasks that operate within or among one or more computing groups.